Fecha de inicio: 08/02/2005
Fecha final: 25/03/2005
Lenguaje utilizado: C++
Notas: * Compilado utilizando Mingw (parte del GNU Compiler Collection) y usando el IDE DevC++...
       talvez requiera modificarse el codigo si se trata de compilar con otro compilador ejm: Visual C++ 
Tamao de ejecutable: 48.573 Bytes 
Descripcion:

Amy es un Virus Prepender, al iniciarse este crea unos 5 hilos suspendidos en memoria para su posterior uso.

Funcionamiento:

       - Se separa el Host original de Amy y este es desencriptado y ejecutado. (Se despierta un hilo suspendido)
       - Si el dia es 13 de cualquier mes entonces se pasa al PayLoad ---------------------------------------------------| 
       - Amy obtiene su codigo y este mismo es guardado en memoria para su posterior uso.                                | 
       - Empieza la busqueda de archivos con extension *.exe en el directorio actual y en el directorio de Windows,      |
         al encontrar un archivo este se analiza para determinar si ya esta infectado si no lo esta entonces se procede  |
         a encriptar el archivo original y luego infectarlo. (Se despierta un hilo suspendido)		                 |
       - Amy se queda en memoria buscando ventanas sospechosas para luego cerrarlas. (Se despierta un hilo suspendido)   |
															 |
			* Payload *	    <----------------------------------------------------------------------------|
       - Se procede a mostar en pantalla este mensaje (Se despierta un hilo suspendido) :
         
	 |--------------------------------------------|
         |					      | 
	 |                MENSAJE		      |  -> Aqui va la foto
         |                                            |
	 |--------------------------------------------|

       - Usando la API URLDownloadToFileA se descarga una imagen de la cantante Amy Lee, se procede a crear un archivo
	 HTML con esta imagen y algunos mensajes, el Wallpaper del usuario afectado es cambiado por el HTML generado.
	 (Se despierta un hilo suspendido)

Algoritmo de encriptacion/Desencriptacion:

	- Este es un algoritmo no lineal diseado por mi, no es muy fuerte pero si te daria unos cuantos dolores de cabeza
	  antes de lograr romperlo.

Encriptacion:

	- Se genera una llave, esta llave consiste en el tamao en bytes del archivo a infectar multiplicado por 6.
	- El byte a encriptar se la aplica XOR con la llave generada. (byte ^ llave)
 	- El byte a encriptar es sumado con el tamao del archivo. (byte + FileSize)
	- El byte a encriptar es restado con el numero actual de una variable en este caso "J" (al inicio J=1)
	- Si J es = 100 entonces con cada byte encriptado J va decrementando. -------\ 
										      |--> esto lo hace no lineal	
	- Si J es = 1 entonces con cada byte encriptado J va aumentando.-------------/

Desencriptacion:

	- Se genera una llave, esta llave consiste en el tamao en bytes del archivo a infectar multiplicado por 6.
	- El byte a encriptar es sumado con el numero actual de una variable en este caso "J" (al inicio J=1)
	- El byte a encriptar es restado con el tamao del archivo. (byte - FileSize)
	- El byte a encriptar se la aplica XOR con la llave generada. (byte ^ llave)
	- Si J es = 100 entonces con cada byte encriptado J va decrementando. -------\ 
										      |--> esto lo hace no lineal	
	- Si J es = 1 entonces con cada byte encriptado J va aumentando.-------------/
	
Ejemplos:

	- un archivo con el contenido: QWERTYUIOPASDFGHJKLZXCVBNM0123456789!"#$%/&/()=?
	- con un tamao de:            49 bytes
	- Asi quedaria encriptado:     )
						
	- un archivo con el contenido: AAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCC
	- con un tamao de:            56 bytes	
        - Asi quedaria encriptado:        (No lineal =)

Ventanas a cerrar:

	          - Registry Editor                                 - Regedit.exe
                  - System Configuration Utility		    - msconfig.exe
		  - Editor del Registro                             - Regedit.exe
                  - Utilidad de configuracin del sistema           - msconfig.exe
                  - Windows Task Manager                            - taskmgr.exe
                  - Administrador de tareas de Windows              - taskmgr.exe

Infeccion:

Acciones realizadas al encontrar un ejecutable no infectado:
	 
		  - Se encripta el Host.
		  - Se lee el contenido del Host encriptado y se guarda en un lugar de la memoria.
		  - Se crea un archivo temporal con nombre aleatorio.
 		  - Se escribe en el archivo el codigo de Amy.
		  - Se escribe en el archivo el codigo encriptado del Host original.
		  - Se escribe la firma del virus = Amy.
 		  - Una copia del archivo temporal remplaza al Host original.
		  - El archivo temporal original es borrado con el algoritmo NATO.	

         |------------|
         |            |
         |    HOST    |   ----> Antes de la infeccion
         |            |
	 |------------|

         |------------|
	 |            |
	 |     AMY    |
         |            |
	 |------------|  ----> Despues de la infeccion
         |            |
         |    HOST    |
         | ENCRIPTADO |
         |------------|
	 |            |
 	 |   FIRMA    |
         |	      |
         |------------|

Algoritmo NATO:

Este es el algoritmo para la eliminacin de archivo standard del North Atlantic Treaty Organization (NATO) 
su nivel de seguridad es alto.

Estructura de funcionamiento:

- 1) Sobrescribir la informacin con = 0x00 y 0xff de manera intercalada unas 6 veces.
- 2) la 7 vez se sobrescribe la informacin con datos aleatorios 

Este es mi primer virus hecho en C++ ... Es decir: No esperen una maravilla de codigo jeje,
					           este se puede optimizar bastante pero por
						   razones de tiempo puez se quedo asi.

Byt3Cr0w/GEDZAC
bytecrow@post.cz
www.byt3cr0w.tk
